**原理: **
寫一個Python的檔案
然後使用Pyinstaller打包成一個EXE
如果Unity Build出來的程式裡面會有讀到Get Current Directory的話就會找不到
這時候可以放進Streaming Asset, 或是再用別的方式來讀取文件。
先創建這樣的資料夾結構:
source 裡面放Unity Build 出來的程式:
Python Code:
import os
from traceback import format_exc
import subprocess
BASE_DIR = os.path.dirname(__file__)
try:
process = subprocess.Popen(
f'{BASE_DIR}/source/<exe-application-name>.exe',
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
process.wait()
except:
print(format_exc())
input('error')
Pyinstaller (版本 pyinstaller==5.10.1)指令:
pyinstaller --onefile --clean --windowed --add-data="source;source" --icon=<name>.ico --name=<project-folder> run.py
這一行指令是用來使用PyInstaller將Python腳本run.py打包成單個可執行文件的命令
參數:
pyinstaller
: 呼叫PyInstaller打包工具。--onefile
: 告訴PyInstaller將所有代碼和依賴項打包成單個可執行文件,而不是生成多個文件。--clean
: 告訴PyInstaller在打包之前先清理先前的編譯結果。run.py
: 指定要打包的Python腳本文件。--add-data=source;source
: 告訴PyInstaller將source目錄中的文件添加到打包後的可執行文件中。這里的"source;source"表示原始文件的路徑和目標目錄的路徑相同。關於PyInstaller的其他一些常用指令:
--windowed
: 生成沒有控制台窗口的應用程序(無黑色cmd窗口)。--icon=icon.ico
: 設置應用程序的圖標,將**icon.ico
**替換為你自己的圖標文件路徑。--name=app_name
: 設置打包後的可執行文件的名稱,將**app_name
**替換為你想要的名稱。--noconfirm
: 在打包時不要求確認,適用於批處理打包。--upx
: 使用UPX壓縮可執行文件,以減小文件大小。--debug
: 啟用除錯模式,將打包過程中的詳細信息打印到控制台。生成出來的程式會放在dist文件夾裡面: